package org.hikari.qqbot.xiuxian.task;

import org.hikari.qqbot.xiuxian.command.ICommand;
import org.hikari.qqbot.xiuxian.service.bo.UserSetting;

import java.util.Collection;

/**
 * @author yinchao
 * @version 1.0
 * created at 2024-12-10 22:12:09
 **/
public interface ITask {

    /**
     * 获取任务ID
     *
     * @return 任务ID
     */
    String getId();

    /**
     * 处理消息
     *
     * @param runtime 运行时
     * @param message 消息
     * @return 要回复的命令，为空表示无需回复
     */
    Collection<ICommand> process(UserTaskRuntime runtime, String message);

    /**
     * 初始化用户命令
     *
     * @param setting 设置
     * @return 初始化的命令, 为空表示不需要
     */
    ICommand initCommand(UserSetting setting);

    /**
     * 初始化用户设置
     *
     * @param setting 设置
     */
    void initSetting(UserSetting setting);

}
